Skip to content

[29.x backport] vendor: go.yaml.in/yaml/v3 v3.0.6 (security) - #7461

Merged
thaJeztah merged 1 commit into
docker:29.xfrom
thaJeztah:29.x_backport_bump_yaml
Nov 3, 2026
Merged

thaJeztah merged 1 commit into
docker:29.xfrom
thaJeztah:29.x_backport_bump_yaml

Conversation

@thaJeztah

@thaJeztah thaJeztah commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

vendor: go.yaml.in/yaml/v3 v3.0.6

resolve: hint-class literal merge-key string "<<" so it's quoted on encode

full diff: yaml/go-yaml@v3.0.5...v3.0.6

So is this a REAL security fix for v3?

YES, absolutely! Here's why:

  1. The vulnerability is real — A map key with literal value "<<" gets encoded unquoted, then decoded as a YAML merge directive, causing keys to be injected into the wrong scope.
  2. v3 is vulnerable — v3 doesn't have the fix that v4 has, so the attack works.
  3. The PR fixes it — Adding t[int('<')] = 'M' registers the hint byte, so "<<" gets quoted on encode, preventing misinterpretation on decode.
  4. It's security-critical — While the PR description is matter-of-fact, this prevents key injection attacks where an attacker-controlled map value could splice their keys into your data structure.

Your original concern was valid: You were right to wonder if it was a real security issue or just paperwork. It's very real — but it's been quietly fixed in v4, and now being ported to v3's frozen maintenance branch.

Release notes (optional)

Fix literal `<<` keys in YAML files being emitted without quotes

A picture of a cute animal (not mandatory but encouraged)

resolve: hint-class literal merge-key string "<<" so it's quoted on encode

full diff: yaml/go-yaml@v3.0.5...v3.0.6

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 796f963)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@docker-agent docker-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assessment: 🟢 APPROVE

@thaJeztah thaJeztah self-assigned this Nov 3, 2026
@thaJeztah
thaJeztah requested a review from vvoland November 3, 2026 11:01

@docker-agent docker-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assessment: 🟢 APPROVE

@vvoland vvoland modified the milestone: 29.9.3 Nov 3, 2026
@thaJeztah
thaJeztah marked this pull request as ready for review November 3, 2026 13:22
@thaJeztah
thaJeztah merged commit 86e51b4 into docker:29.x Nov 3, 2026
113 of 117 checks passed
@thaJeztah
thaJeztah deleted the 29.x_backport_bump_yaml branch November 3, 2026 13:23

@docker-agent docker-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assessment: 🟢 APPROVE

berolinux added a commit to OpenMandrivaAssociation/docker-cli that referenced this pull request Nov 4, 2026
Security release. The CLI vendors the go-jose, zstd, and SwarmKit
fixes; overlay iptables and BuildKit are engine-side.

CVE-2026-116587: excessive CPU when parsing crafted RSA keys
(GHSA-mgcc-cww5-fp2q), via go-jose v4.1.7.
CVE-2026-116591: panic when decompressing crafted zstd
(GHSA-fpmh-frq8-7rj8), via klauspost/compress v1.20.2.
CVE-2026-115538: Swarm overlay networks lose encryption and spoofing
protection after firewalld flushes Docker's iptables rules
(GHSA-6jhp-7446-hf7f).
CVE-2026-115539: a worker TLS certificate can obtain a manager
certificate after a Swarm leader change (GHSA-628g-hv7f-pgjc),
vendored SwarmKit v2.1.3.

BuildKit v0.34.2 (engine):
CVE-2026-121522 (GHSA-2fqp-xg6f-v7gj): resolving the same Git source
twice can crash the daemon through resolver cache poisoning.
CVE-2026-121520 (GHSA-w26x-xg27-7qjc): a client with BuildKit control
API access could set extended attributes outside the state directory.

CLI: quote literal "<<" keys when emitting YAML so they are not
decoded as merge keys (docker/cli#7461, go.yaml.in/yaml/v3 v3.0.6).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants